import com.mysql.cj.jdbc.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class demo2 {
    public static void main(String[] args) throws SQLException {
        //jdbc查询
        //1.创建datasource
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("123456");


        //2.连接数据库
        Connection connection = dataSource.getConnection();

        //3.构造一个sql，(代码中的sql不需要写分号)PreparedStatement对象，用于执行预编译的 SQL 语句
        String sql = "select * from student where id = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1,21);

        //4.执行sql ResultSet 就表示查询的结果集合(临时表),此处就需要遍历结果集
        ResultSet resultSet = statement.executeQuery();

        //5.遍历结果集合
        //通过next方法可以获得临时表中的每一行数据，如果获取到最后一行之后，在执行next返回false，循环结束
        while(resultSet.next()){
            //取出列的数据
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id =" +id +" ,name = "+name);
        }

        //6.释放资源
        resultSet.close();
        statement.close();
        connection.close();
    }

}
